Remote Procedure Call (RPC) is a computer implemented protocol for constructing distributed, client-server based applications by splitting functions between “client” tasks and “server” tasks performed by various computer resources that are organized into a network for communication with each other. RPC is premised on extending the notion of conventional or local procedure calling, so that the called procedure need not exist in the same address space as the calling procedure. The two processes may be on the same system, or they may be on different systems with a network connecting them. By using RPC, programmers of distributed applications may avoid the details of the interface with the network, thus making the client/server model of computing more powerful and user friendly. Networking applications that provide RCP functionality are fairly common and include CORBA, XML-RPC, COM, ActiveX, Java™ RMI, and .NET Remoting, to name a few. Most of these communication methods only provide function calls, properties, and sometimes service to client events, though Java™ RMI and .NET Remoting allow for object-oriented references and garbage collection.
These communication methods are typically intended for business applications and, thus, are designed to handle non-time critical data transfers. Thus, a need exists for improved communication methods in systems requiring time critical data transfers.